package br.com.websec.ocorrencia;

import java.util.List;

import org.apache.log4j.Logger;
import org.hibernate.HibernateException;
import org.hibernate.Session;

public class OcorrenciaDaoHibernate implements OcorrenciaDao {
	
	private static final Logger logger = Logger
	.getLogger(OcorrenciaDaoHibernate.class.getName());

	private Session session;
	
	public void setSession(Session session){
		this.session = session;
	}

	@Override
	public void salvar(Ocorrencia ocorrencia) {
		try {
			this.session.save(ocorrencia);

		} catch (HibernateException e) {
			logger.error("Não foi possível salvar o objeto Ocorrencia na base de dados.: "
					+ e.getMessage());
		}

	}

	@Override
	public void excluir(Ocorrencia ocorrencia) {
		
		try {
			this.session.delete(ocorrencia);

		} catch (HibernateException e) {
			logger.error("Não foi possível excluir o objeto Cliente da base de dados.: " + e.getMessage());
		}

	}

	@SuppressWarnings("unchecked")
	@Override
	public List<Ocorrencia> listaPorBanco(Integer banco) {
		
		String hql = "select  o from Ocorrencia  o where o.idBanco = :idbanco";
		org.hibernate.Query query = this.session.createQuery(hql);
		query.setParameter("idbanco", banco);
		return (List<Ocorrencia>) query.uniqueResult();
		
	}

	
	@Override
	public Ocorrencia listaPorId(Integer ocorrencia) {
		
		String hql = "select  o from Ocorrencia o where c.idOcorrencia = :idocorrencia";
		org.hibernate.Query query = this.session.createQuery(hql);
		query.setParameter("idocorrencia", ocorrencia);
		return (Ocorrencia) query.uniqueResult();
	}

}
